Skip to content

Update Orchestrion to v1.12.0 and preserve partial uploads - #214

Open
tonyredondo wants to merge 32 commits into
mainfrom
tony/orchestrion-v1.12.0
Open

Update Orchestrion to v1.12.0 and preserve partial uploads#214
tonyredondo wants to merge 32 commits into
mainfrom
tony/orchestrion-v1.12.0

Conversation

@tonyredondo

@tonyredondo tonyredondo commented Aug 7, 2026

Copy link
Copy Markdown
Member

Summary

  • update the maintained Orchestrion integration from v1.9.0 to v1.12.0 and the default dd-trace-go/v2 pin from v2.9.0 to v2.9.1
  • preserve Orchestrion's upstream test-variant resolver while retaining the Bazel execroot/tempdir and resolver-context compatibility patches
  • make the resolver cycle-guard source patch work with both LF and CRLF checkouts
  • preserve exact configured dd-trace-go module versions in the offline proxy, including prerelease pins that differ from the module graph's selected stable version
  • regenerate the public profiles for rules_go v0.60.0, v0.61.1, and v0.62.0, and update fixtures, onboarding helpers, docs, and skills
  • make declared rules_go stdlib cache outputs deterministic by building through a private scratch GOCACHE and publishing manifested woven archives under content-addressed paths
  • isolate non-Go runtime data tools from Orchestrion and avoid reinstrumenting an already synthetic Go test main during Test Optimization linking
  • batch CODEOWNERS enrichment once per target set instead of repeating it for every payload
  • keep processing every available fresh valid payload when another target or validation phase fails, while preserving the earliest failure as the command result
  • apply the same partial-result behavior to Bash, PowerShell, generated Go validation scripts, documentation, and onboarding skills

Orchestrion v1.12.0 requires Go 1.25.0 or newer.

Why

The v1.12 resolver tracks test variants for generated test mains and recursively resolves the correct dependency archives. The previous v1.9 integration disabled that recursive toolexec path for Bazel compatibility; this update keeps the upstream behavior and narrows the local patch to Bazel filesystem and invocation-context differences.

The offline proxy downloads both the resolved module graph and the exact configured dd-trace-go pins. This keeps normal Go module resolution intact while ensuring synthetic Orchestrion dependencies can resolve a consumer's prerelease pin without network access.

A failed test can still produce a valid Test Optimization payload containing the failure details. Validation failures and missing sibling outputs are therefore reported without discarding valid fresh payloads from the same invocation. The final status still reports the earliest test, doctor, dry-run, or upload failure.

Repository transitions reset Orchestrion for non-Go runtime data tools. The Go linker also recognizes a Test Optimization synthetic test main and does not route that already generated source through Orchestrion again. This keeps the recursive resolver available where required without applying it to unrelated tool binaries.

The resolver source downloaded by the repository rule can use the checkout.s native line endings. Building the replacement text with the detected line ending keeps the same patch semantics on Linux, macOS, and Windows.

The stdlib builder never exposes its declared cache TreeArtifact as a writable GOCACHE. Plain builds leave it empty, while Orchestrion builds publish only sorted, manifested *-d archives from an action-private scratch cache. This removes nondeterministic Go cache metadata and scratch entries from Bazel outputs. Content-addressing the published archives also prevents environment-sensitive Go action IDs from changing declared output paths for byte-identical archives.

Validation

  • python3 tools/dev/generate_rules_go_fork_maps.py --check
  • python3 tools/dev/materialize_rules_go_fork.py check --all
  • python3 tools/dev/check_release_archive_contents.py
  • python3 tools/dev/verify_rules_go_profiles.py --public-denylist tools/dev/private_leak_public_denylist.txt --bazel <macOS Bazel wrapper>
  • focused bootstrap, onboarding pin, workspace helper, CODEOWNERS batching, runtime-transition, and profile-tool tests
  • focused resolver-cycle patch tests for LF and CRLF across rules_go v0.60.0, v0.61.1, and v0.62.0
  • WORKSPACE and Bzlmod Go integration scripts for rules_go v0.60.0, v0.61.1, and v0.62.0, including exact v2.9.1-rc.3 offline-proxy coverage
  • ./bazelw test //... --noexperimental_split_xml_generation (482 tests passed)
  • deterministic stdlib cache verification across two isolated output roots for rules_go v0.60.0, v0.61.1, and v0.62.0 on macOS, plus Linux/amd64 verification for v0.60.0, with disk and remote caches disabled
  • local-archive consumer validation across all three rules_go versions, covering disabled mode, fresh Test Optimization payloads, unchanged action-cache hits, doctor, and mock uploads
  • ./bazelw test //tools/tests/python:python_tools_test --noexperimental_split_xml_generation
  • ./bazelw test //modules/go/tools/dd_topt_go_bootstrap:bootstrap_test --noexperimental_split_xml_generation
  • local-archive WORKSPACE and Bzlmod consumer fixtures, including real uploads of failed-test payloads to their mock backend
  • dd-source load run with 83 optimized Go targets across 14 contexts: 80 passed, 3 preserved test failures, doctor and dry-run passed, and all 506 fresh payloads (261 test plus 245 telemetry) uploaded successfully

@tonyredondo
tonyredondo requested a review from a team as a code owner August 7, 2026 18:09

@datadog-datadog-prod-us1 datadog-datadog-prod-us1 Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Autotest was unable to complete this review. View session

Please try again by commenting @autotest review.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 73172ce3bf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread modules/go/tools/dd_topt_go_bootstrap/main.go

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d719c47e34

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread README.md Outdated
Comment thread modules/go/tools/dd_topt_go_bootstrap/main.go
@tonyredondo
tonyredondo marked this pull request as draft August 8, 2026 08:08
@tonyredondo tonyredondo changed the title go: update Orchestrion integration to v1.12.0 Update Orchestrion to v1.12.0 and preserve partial uploads Aug 8, 2026
@tonyredondo
tonyredondo marked this pull request as ready for review August 22, 2026 23:36

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3222be11d9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/test_optimization/run_test_optimization_ci.sh Outdated
Comment thread third_party/rgo/v0_60_0/base/go/tools/builders/orchestrion_cache.go

@datadog-datadog-prod-us1 datadog-datadog-prod-us1 Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: FAIL

Two edge cases can lose valid data. A missing BEP stops partial uploads, and a cache owner that runs for more than ten minutes can lose its active lock.

Open Bits AI session

🤖 Datadog Autotest · Commit 3222be1 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

Comment thread tools/test_optimization/run_test_optimization_ci.sh
Comment thread third_party/rgo/v0_60_0/base/go/tools/builders/orchestrion_cache.go
@datadog-datadog-prod-us1

This comment has been minimized.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ba0c3dd263

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/test_optimization/run_test_optimization_ci.sh Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a8c8def793

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/core/uploader_bash_runtime.sh.tpl

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8bf79cd6a2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread modules/go/topt_go_stdlib.bzl
Comment thread tools/core/uploader_bash_runtime.sh.tpl

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 74ef9cea46

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/test_optimization/run_test_optimization_ci.sh
Comment thread docs/Installation_Reference.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e852e47d3d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/core/uploader_bash_runtime.sh.tpl
Comment thread tools/core/uploader_bash_runtime.sh.tpl

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 83e661437f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +195 to +196
if [[ "$DO_UPLOAD" -eq 1 ]]; then
UPLOAD_REPORT_JSON="$UPLOADER_REPORT_JSON"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Honor explicit uploader report paths during uploads

When --upload is combined with --uploader-report-json PATH (or DD_TEST_OPTIMIZATION_UPLOADER_REPORT_JSON) without --report-dir, this assignment never runs because it is nested inside the REPORT_DIR block. UPLOAD_REPORT_JSON therefore remains empty and the real uploader is invoked without --report-json, contrary to the option's documented dry-run-or-upload behavior in docs/Configuration_Reference.md:681; the PowerShell wrapper has the same nesting. Assign the selected uploader path for upload mode independently of whether a report directory was supplied.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 89e28cb34e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/dev/verify_rules_go_profiles.py

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3353f0c589

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/core/uploader_bash_runtime.sh.tpl

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8a859700d6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/core/uploader_powershell_runtime.ps1.tpl Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a9d0009f16

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/core/uploader_powershell_runtime.ps1.tpl Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant